package SwordOffer2;

public class day7_3 {
    /*
     * 双指针：
     * 1.设置指针a=headA，b=headB，
     * 2.设置循环条件当a，b不等时循环，若a=null时，a=headB，若b=null时，b=headA
     *   当a，b相等时退出循环，a，b走的长度相等，有两种情况，若有公共链表，此实a，b指向公共起始点，
     *   若没有公共链表，a，b指向null
     * 3.返回值a
     * */
    public ListNode1 getIntersectionNode(ListNode1 headA, ListNode1 headB) {
        ListNode1 a = headA;
        ListNode1 b = headB;
        while (a != b) {
            if (a != null) {
                a = a.next;
            } else {
                a = headB;
            }
            if (b != null) {
                b = b.next;
            } else {
                b = headA;
            }
        }
        return a;
    }
}
